table of contents
INTRO(2) | Руководство программиста Linux | INTRO(2) |
ИМЯ¶
intro - Введение в системные вызовы
ОПИСАНИЕ¶
В разделе 2 описываются системные вызовы Linux. Системный вызов — это точка входа в ядро Linux. Обычно, системные вызовы не запускаются напрямую, вместо этого почти все системные вызовы имеют соответствующие обёрточные функции в библиотеке C, которая выполняет некоторые действия (например, подготовку к работе в режиме ядра) для запуска системного вызова. Таким образом, работа с системным вызовом выглядит также как вызов обычной библиотечной функции.
Список системных вызовов Linux можно найти в syscalls(2).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
В случае ошибки большинство системных вызовов возвращает отрицательное число (т.е., отрицательное значение одной из констант, описанных в errno(3)). Обёртка в библиотеке C скрывает эту информацию от вызывающей стороны: когда системный вызов возвращает отрицательное значение, обёртка копирует абсолютное значение в переменную errno и возвращает -1 в качестве результата своей работы.
Значение результата успешной работы системного вызова зависит от вызова. Многие системные вызовы в этом случае возвращают 0, а некоторые могут вернуть ненулевое значение. Подробно об этом написано в справочной странице самого вызова.
В некоторых случаях программист должен определить макрос тестирования свойств, чтобы получить объявление системного вызова из заголовочного файла, указанного в справочной странице в разделе СИНТАКСИС. (Где необходимо, эти макросы тестирования свойств должны быть определены перед включением какого-либо заголовочного файла.) В таких случаях требуемый макрос описан в справочной странице. Подробней о макросах тестирования свойств написано в feature_test_macros(7).
СООТВЕТСТВИЕ СТАНДАРТАМ¶
Для обозначение вариантов UNIX и разнообразных стандартов, которым соответствуют системные вызовы, описанные в этом разделе, используются различные сокращения. См. standards(7).
ЗАМЕЧАНИЯ¶
Непосредственный вызов¶
В большинстве случаев, не требуется запускать системный вызов напрямую, но иногда в стандартной библиотеке C может не оказаться нужной обёрточной функции. В этом случае программист должен вручную выполнить системный вызов с помощью syscall(2). Исторически, также осталось возможно сделать с помощью макросов _syscall, описанных в _syscall(2).
Авторы и условия распространения¶
Авторы и условия распространения указаны в заголовке исходной справочной страницы. Заметим, что у разных страниц они могут быть разными! Список русских переводчиков для каждой страницы можно найти в .po файле в исходном коде пакета.
СМОТРИТЕ ТАКЖЕ¶
_syscall(2), syscall(2), syscalls(2), errno(3), intro(3), capabilities(7), credentials(7), feature_test_macros(7), mq_overview(7), path_resolution(7), pipe(7), pty(7), sem_overview(7), shm_overview(7), signal(7), socket(7), standards(7), svipc(7), symlink(7), time(7)
2010-11-11 | Linux |